#ifndef __CGSHADER_H__
#define __CGSHADER_H__

#include "Shader.h"
#include "ShaderProgram.h"

#include "Cg/cg.h"

namespace RayFrame
{
  /// Shader class for nvidia cg
  class DLL_DECLARE CGShader: public Shader
  {
    friend class CGShaderProgram;
  public:
    CGShader();
    ~CGShader(){ internalDestroy(); };

    CGprogram GetCGProgram(){ return m_cgProgram; };
  protected:
    virtual void internalCreate();
    virtual void internalDestroy();
  protected:
    CGprogram m_cgProgram;
    CGprofile m_cgProfile;
  };
}

#endif